package mybox.engine.rundfeder;

import mybox.engine.Figur;
import mybox.engine.File4Qcad;
import mybox.engine.Line;
import mybox.engine.QVector;
import static java.lang.Math.*;

public class ViertelKreis implements Figur{
	
	File4Qcad file4qcad;
	QVector center;
	QVector start;
	QVector end;
	double startPhi;
	int anzahlSektoren;
	double innerSektorBreite;
	double sektorPhi;
	double radius;
	Line[] linearr;
	
		
	public ViertelKreis(File4Qcad file4qcad, QVector start, int anzahlSektoren, double innerSektorBreite, double startPhi) {
		this.file4qcad=file4qcad;
		this.start=start;
		this.anzahlSektoren=anzahlSektoren;
		this.innerSektorBreite=innerSektorBreite;
		sektorPhi=sectorPhi(anzahlSektoren);
		radius=radius(innerSektorBreite,anzahlSektoren); 	
		linearr = new Line[anzahlSektoren];
		center = new QVector(start.x-radius*cos(startPhi), start.y-radius*sin(startPhi));
		
		for (int sectorIdx=0;sectorIdx<anzahlSektoren;sectorIdx++) {
			 double beginPhi=startPhi+sectorIdx*sektorPhi;
			 double endPhi=startPhi+(sectorIdx+1)*sektorPhi;
			 QVector beginLine = new QVector(center.x+radius*cos(beginPhi), center.y+radius*sin(beginPhi));
			 QVector endLine=new QVector(center.x+radius*cos(endPhi), center.y+radius*sin(endPhi));
			 linearr[sectorIdx]=new Line(file4qcad,beginLine, endLine);				 
		}
		end=linearr[anzahlSektoren-1].end;
	}
	
	public static double sectorPhi(int anzahlSektoren) {
		return (PI/2)/anzahlSektoren;
	}
	
	public static double radius(double innerSektorBreite, int anzahlSektoren) {		
		return (innerSektorBreite/2)/tan(sectorPhi(anzahlSektoren)/2);
	}
	
	@Override
	public void draw() {		
		for (Line line : linearr) {
			line.draw();
		}
		
	}

}
